home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2005 October / Gamestar_77_2005-10_dvd.iso / Dema / betonsoldier_spdemo.exe / {app} / Shaders / Mesh_decal_Shader.fx < prev    next >
Encoding:
Text File  |  2005-05-05  |  7.5 KB  |  244 lines

  1. //------------------------------------------------------------------------------------------------------
  2. //------------------------------------------------------------------------------------------------------
  3. //------------------------------------------------------------------------------------------------------
  4.  
  5. #include "shared.fx"
  6. #include "lighting.fx"
  7. #define FOG_DISABLE
  8. #include "fog.fx"
  9.  
  10. //------------------------------------------------------------------------------------------------------
  11. //- Static parameters
  12. //------------------------------------------------------------------------------------------------------
  13.  
  14. texture            DiffuseMap;
  15. float4            FadeFactor; //shared between all occurences of this shader.
  16.  
  17. //------------------------------------------------------------------------------------------------------
  18. //------------------------------------------------------------------------------------------------------
  19. //------------------------------------------------------------------------------------------------------
  20.  
  21. struct    GUIFadeVertexShaderInput
  22. {
  23.     float4    Position    :    POSITION;
  24.     float2    DiffuseUv    :    TEXCOORD0;    
  25. };
  26.  
  27. //------------------------------------------------------------------------------------------------------
  28.  
  29. struct    GUIFadeVertexShaderOutput
  30. {
  31.     float4    Position    :    POSITION;
  32.     float4    FadeFactor    :    COLOR0;
  33.     float2    DiffuseUv    :    TEXCOORD0;
  34.     FOG_OPTION_VERTEX_FIELD    
  35. };
  36.  
  37. //------------------------------------------------------------------------------------------------------
  38. //------------------------------------------------------------------------------------------------------
  39. //------------------------------------------------------------------------------------------------------
  40.  
  41. GUIFadeVertexShaderOutput    GUIFadeVertexShaderTech1Pass1(const GUIFadeVertexShaderInput input);
  42.  
  43. //------------------------------------------------------------------------------------------------------
  44. //------------------------------------------------------------------------------------------------------
  45. //------------------------------------------------------------------------------------------------------
  46.  
  47. GUIFadeVertexShaderOutput    GUIFadeVertexShaderTech1Pass1(const GUIFadeVertexShaderInput input)
  48. {
  49.     GUIFadeVertexShaderOutput output;
  50.     
  51.     // output position into world+view+projection space
  52.     output.Position = mul (input.Position,WorldCameraProjection);
  53.         
  54.     // Diffuse Uv output
  55.     output.DiffuseUv = input.DiffuseUv;
  56.     
  57.     // use color0 to store the fade factor.
  58.     output.FadeFactor = FadeFactor;
  59.         
  60.     FOG_OPTION_COMPUTE(output, output.Position);
  61.     
  62.     return output;
  63. }
  64.  
  65. //------------------------------------------------------------------------------------------------------
  66. //------------------------------------------------------------------------------------------------------
  67. //------------------------------------------------------------------------------------------------------
  68.  
  69. //------------------------------------------------------------------------------------------------------
  70. //------------------------------------------------------------------------------------------------------
  71. //------------------------------------------------------------------------------------------------------
  72. technique    Fade
  73. <
  74.     int Priority = 0;
  75.     int NeedSorting    = 1;
  76.     int TechniqueIndex = 0;
  77.     int DeviceType = HWSHADER_ONLY;
  78.     int LightingType = INTEGRATED_LIGHTING;
  79.     string RenderingType = "Standard";
  80. >
  81. {
  82.     pass pass1
  83.     {
  84.         Texture[0]            = <DiffuseMap>;
  85.         MinFilter[0]        = LINEAR;
  86.         MagFilter[0]        = LINEAR;
  87.         MipFilter[0]        = LINEAR;
  88.         AddressU[0]            = WRAP;
  89.         AddressV[0]            = WRAP;
  90.         CullMode            = CW;
  91.         ZEnable                = true;
  92.         ZFunc                = LESSEQUAL;
  93.         ZWriteEnable        = false;
  94.         
  95.         AlphaTestEnable        = false;
  96.         AlphaBlendEnable    = true;
  97.         
  98.         SrcBlend            = SRCALPHA;
  99.         DestBlend            = SRCCOLOR;
  100.         
  101.         FOG_OPTION_PARAMETERS;        
  102.         
  103.         //SrcBlend            = ZERO;
  104.         //DestBlend            = INVSRCCOLOR;        
  105.         //SrcBlend            = SRCCOLOR;
  106.         //DestBlend            = INVSRCCOLOR;        
  107.         
  108.         VertexShader = compile vs_1_1 GUIFadeVertexShaderTech1Pass1();
  109.         
  110.         PixelShader = 
  111.         asm
  112.         {
  113.             ps_1_1
  114.  
  115.             tex        t0    // Diffuse map
  116.                         
  117.             mul_sat        r1, t0    , 1-t0 
  118.             mul_x4_sat    r0, 1-r1, t0
  119.             mul_sat        r0, 1-r0, v0.a
  120.             mov r0.rgb, 1-r0 + mul r0.a, t0.a, v0.a
  121.         };
  122.     }
  123. }
  124.  
  125.  
  126. //------------------------------------------------------------------------------------------------------
  127. //------------------------------------------------------------------------------------------------------
  128. //------------------------------------------------------------------------------------------------------
  129.  
  130. /*
  131. technique DecalLightVersion
  132. <
  133.     int Priority = 0;
  134.     int NeedSorting    = 1;
  135.     int TechniqueIndex = 2;
  136.     int DeviceType = HWSHADER_ONLY;
  137.     int LightingType = INTEGRATED_LIGHTING;
  138.     string RenderingType = "Standard";
  139. >
  140. {
  141.     pass pass1
  142.     {
  143.         Texture[0]            = <DiffuseMap>;
  144.         MinFilter[0]        = LINEAR;
  145.         MagFilter[0]        = LINEAR;
  146.         MipFilter[0]        = LINEAR;
  147.         AddressU[0]            = WRAP;
  148.         AddressV[0]            = WRAP;
  149.         CullMode            = CW;
  150.         ZEnable                = true;
  151.         ZFunc                = LESSEQUAL;
  152.         ZWriteEnable        = false;
  153.         
  154.         AlphaTestEnable        = false;
  155.         AlphaBlendEnable    = false;
  156.         
  157.         SrcBlend            = SRCALPHA;
  158.         DestBlend            = INVSRCALPHA;
  159.         
  160.         FOG_OPTION_PARAMETERS;        
  161.         
  162.         VertexShader = compile vs_1_1 GUIFadeVertexShaderTech1Pass1();
  163.         
  164.         PixelShader = 
  165.         asm
  166.         {
  167.             ps_1_1
  168.  
  169.             tex        t0    // Diffuse map
  170.                         
  171.             //mul r1, t0, 1-t0 
  172.             //mul_x4 r0, 1-r1, t0
  173.             //mul r0, 1-r0, v0.a
  174.             //mov r0.rgb, 1-r0 + mul r0.a, t0.a, v0.a
  175.             
  176.             mul_d2 r0, t0, 1-t0
  177. //            mul r1, 1-r1, r1
  178. //            mul r1, 1-r1, r1
  179. //            mul r0, 1-r1, r1
  180.             
  181.             //mov r0, t0
  182.         };
  183.     }
  184. }
  185. */
  186.  
  187. //------------------------------------------------------------------------------------------------------
  188. //------------------------------------------------------------------------------------------------------
  189. //------------------------------------------------------------------------------------------------------
  190. technique    techTnL_0
  191. <
  192.     int Priority = 1;
  193.     int TechniqueIndex = 0;
  194.     int DeviceType = TNL_ONLY;
  195.     int LightingType = INTEGRATED_LIGHTING;
  196.     string RenderingType = "Standard";
  197. >
  198. {
  199.     pass pass1
  200.     {
  201.         WorldTransform[0]    = <WorldCameraProjection>;
  202.         
  203.         Texture[0]            = <DiffuseMap>;
  204.         
  205.         ColorArg1[0]        = TEXTURE;
  206.         ColorOp[0]            = SELECTARG1;
  207.         AlphaArg1[0]        = TEXTURE;
  208.         AlphaOp[0]            = SELECTARG1;
  209.         
  210.         ColorOp[1]            = DISABLE;
  211.         AlphaOp[1]            = DISABLE;
  212.         
  213.         MinFilter[0]        = LINEAR;
  214.         MagFilter[0]        = LINEAR;
  215.         MipFilter[0]        = LINEAR;
  216.         
  217.         AddressU[0]            = WRAP;
  218.         AddressV[0]            = WRAP;
  219.         
  220.         CullMode            = CW;
  221.         ZEnable                = true;
  222.         ZFunc                = LESSEQUAL;
  223.         ZWriteEnable        = true;
  224.         AlphaBlendEnable    = false;
  225.         AlphaTestEnable        = true;
  226.         AlphaRef            = 192;
  227.         AlphaFunc            = GREATEREQUAL;
  228.         
  229.         VertexShader         = NULL;        
  230.         PixelShader         = NULL;
  231.     }
  232. }
  233. //------------------------------------------------------------------------------------------------------
  234. //------------------------------------------------------------------------------------------------------
  235. //------------------------------------------------------------------------------------------------------
  236.  
  237. #include "mesh_shadow.fx"
  238. #include "mesh_shadow_projector.fx"
  239.  
  240. //------------------------------------------------------------------------------------------------------
  241. //------------------------------------------------------------------------------------------------------
  242. //------------------------------------------------------------------------------------------------------
  243.  
  244.